package apibasej.db.sql.wrapper;

import apibasej.db.metadata.Tab;


public class WrapperTab{

	private Tab tab;
	private String strForSql = null;// raramente será setado
	private String aliasTab = null;// importante se tiver sql como joins ... EX: ALUNO a
	
	// caso não queira que esta wrapper tab seja usada para as outras tabs adicionadas farerem joim com esta
	private boolean ignoreAutoJoinForThis; 
	
	public WrapperTab(Tab tab) {
		this.tab = tab;
	}
	
	public String getStrForSql() {
		if(strForSql==null){
			StringBuilder s = new StringBuilder();
			if(tab.isAppendSchema()) {
				s.append(tab.getSchema());
				s.append('.');
			}
			s.append(tab.getName());
			if(aliasTab!=null){
				s.append(' ');
				s.append(aliasTab);
			}
			return s.toString();
		}else{
			return strForSql;
		}
	}

	public void setStrForSql(String strForSql) {
		this.strForSql = strForSql;
	}
	public String getAliasTab() {
		return aliasTab;
	}
	public void setAliasTab(String aliasTab) {
		this.aliasTab = aliasTab;
	}
	public Tab getTab() {
		return tab;
	}
	public void setTab(Tab tab) {
		this.tab = tab;
	}
	public void setIgnoreAutoJoinForThis(boolean ignoreAutoJoinForThis) {
		this.ignoreAutoJoinForThis = ignoreAutoJoinForThis;
	}
	public boolean isIgnoreAutoJoinForThis() {
		return ignoreAutoJoinForThis;
	}
	
	
	@Override
	public boolean equals(Object obj) {
		return this==obj;
	}
	
}
